]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
factor out _createSource
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 9 Feb 2011 10:35:50 +0000 (11:35 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 16 Feb 2011 09:10:26 +0000 (10:10 +0100)
js/ui/telepathyClient.js

index 73d8ec37ce5978807ddaa016925f66d0d141ce03..f9d61fdcfc356086622b9e67208cf1b938e14ae9 100644 (file)
@@ -79,17 +79,6 @@ Client.prototype = {
                targetHandleType != Tp.HandleType.CONTACT)
                continue;
 
-            if (this._sources[connPath + ':' + targetHandle])
-                continue;
-
-            let source = new Source(account, conn, chan);
-
-            this._sources[connPath + ':' + targetHandle] = source;
-            source.connect('destroy', Lang.bind(this,
-                function() {
-                    delete this._sources[connPath + ':' + targetHandle];
-                }));
-
             /* Request a TpContact */
             Shell.get_tp_contacts(conn, 1, [targetHandle],
                     contactFeatures.length, contactFeatures,
@@ -98,21 +87,25 @@ Client.prototype = {
                             return;
 
                         /* We got the TpContact */
-                        if (this._sources[chan.get_object_path()])
-                            return;
-
-                        let source = new Source(account, conn, chan, contacts[0]);
-
-                        this._sources[chan.get_object_path()] = source;
-                        source.connect('destroy', Lang.bind(this,
-                            function() {
-                                delete this._sources[chan.get_object_path()];
-                            }));
-                    }));
+                        this._createSource(account, conn, channel, contacts[0]);
+                    }), null);
         }
 
         // Allow dbus method to return
         context.accept();
+    },
+
+    _createSource: function(account, conn, channel, contact) {
+        if (this._sources[channel.get_object_path()])
+            return;
+
+        let source = new Source(account, conn, channel, contact);
+
+        this._sources[channel.get_object_path()] = source;
+        source.connect('destroy', Lang.bind(this,
+                       function() {
+                           delete this._sources[channel.get_object_path()];
+                       }));
     }
 };